package com.example.controller;

import com.example.pojo.Result;
import com.example.utils.AliOSSUtil;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.UUID;

/**
 * 文件上传
 */
@RestController
public class FileUploadController {

    /*
        String getOriginalFilename();   // 获取原始文件名
        void transferTo(File dest);     // 将接收的文件转存到磁盘文件中
        long getSize();                 // 获取文件的大小
        byte[] getBytes();              // 获取文件内容的字节数组
        InputStream getInputStream();   // 获取接收到的文件内容的输入流
     */

    /**
     * @param file 接收的文件
     */
    @PostMapping("/upload")
    public Result<String> upload(MultipartFile file) throws Exception {

        // 把文件的内容存储到本地磁盘上
        // 文件的原始名
        String originalFilename = file.getOriginalFilename();
        // 保证文件的名字是唯一的，从而防止文件被覆盖
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
//        file.transferTo(new File("E:\\itheima-learn\\springboot3\\big-event\\src\\main\\resources\\static\\files\\" + fileName));

        String url = AliOSSUtil.uploadFile(fileName, file.getInputStream());
        return Result.success(url);
    }


}
